/*
 *  MonitorController.cpp
 *  project8
 *
 *  Created by Luca Gobbo, Erwin Bonnet on 21-06-10.
 *  Copyright 2010 __MyCompanyName__. All rights reserved.
 *
 */

#include "MonitorController.h"

MonitorController::MonitorController(){
    
  
    mode->setListener((ButtonListener)*this);
    set->setListener(this);
    //disp = " WELCOME  ";
    //TODO: zorgen dat er een functie komt om informatie naar de display te schrijven
    theDisplay.write(disp);
	
}

void MonitorController::run() {
    //TODO: dit deel verder fixen zodat deze niet in een loop blijft hangen maar netjes de beurt opgeeft
    while(1){
        setDisplayMode();
    }
}

virtual unsigned char MonitorController::buttonDown(Button b){
    if(b.buttonDown())
        return 1;
    else return 0;
}

virtual unsigned char MonitorController::buttonUp(Button b){
    if(b.buttonUp())
        return 1;
    else return 0;
}

void MonitorController::setDisplayMode(){
    if(displayMode == CUR){
        disp = "CUR: ";
        val = int_to_char((int)(theHeartBeatCtrl.getCUR()), &val);
        for(i = 5,j = 0; i < 12; i++, j++){
            disp[i] = val[j];
            if(val[j] == '\0')
                break;
        }
        //hier is nog geen functie voor
        theDisplay.write(disp);
        if(buttonDown(mode))
            displayMode++;
    }
    else if(displayMode == AVG){
        disp = "AVG: ";
        val = int_to_char((int)(theHeartBeatCtrl.getAVG()), &val);
        for(i = 5,j = 0; i < 12; i++, j++){
            disp[i] = val[j];
            if(val[j] == '\0')
                break;
        }
        //hier is nog geen functie voor
        theDisplay.write(disp);
        if(buttonDown(mode))
            displayMode++;
    }
    else{
        disp = "HIG: ";
        val = int_to_char((int)(theHeartBeatCtrl.getHIG()), &val);
        for(i = 5,j = 0; i < 12; i++, j++){
            disp[i] = val[j];
            if(val[j] == '\0') 
                break;
        }
        //hier is nog geen functie voor
        theDisplay.write(disp);
        if(buttonDown(mode))
            displayMode = 0;
    }
}

void MonitorController::eraseData(){
    theHeartBeatCtrl.eraseData();
}

void MonitorController::switchToStandby(){
    //TODO: uitzoeken wat er verder nog in standby moet gaan
    theDisplay.disable();
}

void MonitorController::timeout(){
	
}
